home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Original Code / Brushes and Pens / PenDashCaps / PenDashCaps.cs next >
Encoding:
Text File  |  2001-01-15  |  1.6 KB  |  54 lines

  1. //------------------------------------------
  2. // PenDashCaps.cs ⌐ 2001 by Charles Petzold
  3. //------------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.Drawing.Drawing2D;
  7. using System.Windows.Forms;
  8.  
  9. class PenDashCaps: PrintableForm
  10. {
  11.      MenuItem miChecked;
  12.  
  13.      public new static void Main()
  14.      {
  15.           Application.Run(new PenDashCaps());
  16.      }
  17.      public PenDashCaps()
  18.      {
  19.           Text = "Pen Dash Caps: Flat, Round, Triangle";
  20.  
  21.           Menu = new MainMenu();
  22.           Menu.MenuItems.Add("&Width");
  23.  
  24.           int[] aiWidth = { 1, 2, 5, 10, 15, 20, 25 };
  25.  
  26.           foreach (int iWidth in aiWidth)
  27.                Menu.MenuItems[0].MenuItems.Add(iWidth.ToString(), 
  28.                                         new EventHandler(MenuWidthOnClick));
  29.  
  30.           miChecked = Menu.MenuItems[0].MenuItems[0];
  31.           miChecked.Checked = true;
  32.      }
  33.      void MenuWidthOnClick(object obj, EventArgs ea)
  34.      {
  35.           miChecked.Checked = false;
  36.           miChecked = (MenuItem) obj;
  37.           miChecked.Checked = true;
  38.           Invalidate();
  39.      }
  40.      protected override void DoPage(Graphics grfx, Color clr, int cx, int cy)
  41.      {
  42.           Pen pen = new Pen(clr, Convert.ToInt32(miChecked.Text));
  43.           pen.DashStyle = DashStyle.DashDotDot;
  44.  
  45.           foreach (DashCap dc in Enum.GetValues(typeof(DashCap)))
  46.           {
  47.                pen.DashCap = dc;
  48.  
  49.                grfx.DrawLine(pen, cx / 8, cy / 4, 7 * cx / 8, cy / 4); 
  50.                grfx.TranslateTransform(0, cy / 4);
  51.           }
  52.      }
  53. }
  54.